home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 …ember: Reference Library / Apple Developer Reference Library (December 1999) (Disk 1).iso / pc / technical documentation / develop / develop issue 24 / develop issue 24 code / new device drivers / PCI Driver Sample / NCR_DriverProject / Src / ManageNVRAMProperty.c < prev    next >
MacBinary  |  1995-07-24  |  10.1 KB  |  [TEXT/MPCC]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon Jul 24 17:34:44 1995, modified Mon Jul 24 17:34:44 1995, creator 'MPCC', type ASCII, 9633 bytes "ManageNVRAMProperty.c" , at 0x2621 410 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPCC]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 15 4d 61 6e 61 67 65 | 4e 56 52 41 4d 50 72 6f |..Manage|NVRAMPro|
|00000010| 70 65 72 74 79 2e 63 00 | 00 00 00 00 00 00 00 00 |perty.c.|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 43 | 43 01 00 00 00 00 00 00 |.TEXTMPC|C.......|
|00000050| 00 00 00 00 00 25 a1 00 | 00 01 9a ac 39 c2 74 ac |.....%..|....9.t.|
|00000060| 39 c2 74 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |9.t.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 1c 75 00 00 |........|.....u..|
|00000080| 2f 2a 09 09 09 09 09 09 | 09 09 09 4d 61 6e 61 67 |/*......|...Manag|
|00000090| 65 4e 56 52 41 4d 50 72 | 6f 70 65 72 74 79 2e 63 |eNVRAMPr|operty.c|
|000000a0| 09 09 09 09 09 09 09 2a | 2f 0d 2f 2a 0d 20 2a 20 |.......*|/./*. * |
|000000b0| 4d 61 6e 61 67 65 4e 56 | 52 41 4d 50 72 6f 70 65 |ManageNV|RAMPrope|
|000000c0| 72 74 79 2e 63 0d 20 2a | 20 43 6f 70 79 72 69 67 |rty.c. *| Copyrig|
|000000d0| 68 74 20 a9 20 31 39 39 | 34 2d 39 35 20 41 70 70 |ht . 199|4-95 App|
|000000e0| 6c 65 20 43 6f 6d 70 75 | 74 65 72 20 49 6e 63 2e |le Compu|ter Inc.|
|000000f0| 20 41 6c 6c 20 72 69 67 | 68 74 73 20 72 65 73 65 | All rig|hts rese|
|00000100| 72 76 65 64 2e 0d 20 2a | 0d 20 2a 2f 0d 2f 2a 09 |rved.. *|. */./*.|
|00000110| 2e 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |._______|________|
|00000120| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000130| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000140| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000150| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000160| 5f 5f 5f 5f 2e 0d 20 20 | 09 7c 20 54 68 65 73 65 |____.. |.| These|
|00000170| 20 72 6f 75 74 69 6e 65 | 73 2c 20 61 66 74 65 72 | routine|s, after|
|00000180| 20 6d 6f 64 69 66 69 63 | 61 74 69 6f 6e 2c 20 77 | modific|ation, w|
|00000190| 69 6c 6c 20 62 65 20 75 | 73 65 66 75 6c 20 66 6f |ill be u|seful fo|
|000001a0| 72 20 6f 74 68 65 72 20 | 64 72 69 76 65 72 73 2e |r other |drivers.|
|000001b0| 20 54 68 65 72 65 20 61 | 72 65 09 7c 0d 20 20 09 | There a|re.|. .|
|000001c0| 7c 20 73 65 76 65 72 61 | 6c 20 67 65 6e 65 72 61 || severa|l genera|
|000001d0| 6c 2d 70 75 72 70 75 73 | 65 20 72 6f 75 74 69 6e |l-purpus|e routin|
|000001e0| 65 73 20 74 68 61 74 20 | 73 69 6d 70 6c 69 66 79 |es that |simplify|
|000001f0| 20 61 63 63 65 73 73 20 | 74 6f 20 74 68 65 20 4e | access |to the N|
|00000200| 61 6d 65 20 52 65 67 69 | 73 74 72 79 2e 20 54 68 |ame Regi|stry. Th|
|00000210| 65 72 65 09 7c 0d 09 7c | 20 61 72 65 20 61 6c 73 |ere.|..|| are als|
|00000220| 6f 20 73 6f 6d 65 20 72 | 6f 75 74 69 6e 65 73 20 |o some r|outines |
|00000230| 74 68 61 74 20 61 72 65 | 20 73 70 65 63 69 66 69 |that are| specifi|
|00000240| 63 20 74 6f 20 74 68 65 | 20 73 61 6d 70 6c 65 20 |c to the| sample |
|00000250| 64 72 69 76 65 72 20 74 | 68 61 74 20 77 69 6c 6c |driver t|hat will|
|00000260| 20 62 65 20 75 73 65 66 | 75 6c 09 7c 0d 09 7c 20 | be usef|ul.|..| |
|00000270| 66 6f 72 20 6f 74 68 65 | 72 20 64 72 69 76 65 72 |for othe|r driver|
|00000280| 73 20 61 66 74 65 72 20 | 6d 6f 64 69 66 69 63 61 |s after |modifica|
|00000290| 74 69 6f 6e 2e 09 09 09 | 09 09 09 09 09 09 09 09 |tion....|........|
|000002a0| 09 7c 0d 09 2e 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.|...___|________|
|000002b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|000002c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|000002d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|000002e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|000002f0| 5f 5f 5f 5f 5f 5f 5f 5f | 2e 0d 2a 2f 0d 0d 23 69 |________|..*/..#i|
|00000300| 6e 63 6c 75 64 65 20 22 | 4e 43 52 44 72 69 76 65 |nclude "|NCRDrive|
|00000310| 72 50 72 69 76 61 74 65 | 2e 68 22 0d 0d 23 64 65 |rPrivate|.h"..#de|
|00000320| 66 69 6e 65 20 43 6f 70 | 79 4f 53 54 79 70 65 54 |fine Cop|yOSTypeT|
|00000330| 6f 43 53 74 72 69 6e 67 | 28 6f 73 54 79 70 65 50 |oCString|(osTypeP|
|00000340| 74 72 2c 20 72 65 73 75 | 6c 74 53 74 72 69 6e 67 |tr, resu|ltString|
|00000350| 29 20 64 6f 20 7b 09 09 | 5c 0d 09 09 42 6c 6f 63 |) do {..|\...Bloc|
|00000360| 6b 43 6f 70 79 28 6f 73 | 54 79 70 65 50 74 72 2c |kCopy(os|TypePtr,|
|00000370| 20 72 65 73 75 6c 74 53 | 74 72 69 6e 67 2c 20 73 | resultS|tring, s|
|00000380| 69 7a 65 6f 66 20 28 4f | 53 54 79 70 65 29 29 3b |izeof (O|SType));|
|00000390| 09 5c 0d 09 09 72 65 73 | 75 6c 74 53 74 72 69 6e |.\...res|ultStrin|
|000003a0| 67 5b 73 69 7a 65 6f 66 | 20 28 4f 53 54 79 70 65 |g[sizeof| (OSType|
|000003b0| 29 5d 20 3d 20 30 3b 09 | 09 09 09 09 09 5c 0d 09 |)] = 0;.|.....\..|
|000003c0| 7d 20 77 68 69 6c 65 20 | 28 30 29 0d 0d 0d 2f 2a |} while |(0).../*|
|000003d0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000003e0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000003f0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00000400| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00000410| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00000420| 20 2a 20 2a 20 2a 20 2a | 0d 20 2a 20 52 65 74 72 | * * * *|. * Retr|
|00000430| 69 65 76 65 44 72 69 76 | 65 72 4e 56 52 41 4d 50 |ieveDriv|erNVRAMP|
|00000440| 61 72 61 6d 65 74 65 72 | 20 72 65 74 72 69 65 76 |arameter| retriev|
|00000450| 65 73 20 74 68 65 20 73 | 69 6e 67 6c 65 20 70 72 |es the s|ingle pr|
|00000460| 6f 70 65 72 74 79 20 73 | 74 6f 72 65 64 20 69 6e |operty s|tored in|
|00000470| 20 6e 6f 6e 2d 76 6f 6c | 61 74 69 6c 65 0d 20 2a | non-vol|atile. *|
|00000480| 20 6d 65 6d 6f 72 79 20 | 28 4e 56 52 41 4d 29 2e | memory |(NVRAM).|
|00000490| 20 42 79 20 63 6f 6e 76 | 65 6e 74 69 6f 6e 2c 20 | By conv|ention, |
|000004a0| 74 68 69 73 20 70 72 6f | 70 65 72 74 79 20 69 73 |this pro|perty is|
|000004b0| 20 6e 61 6d 65 64 20 75 | 73 69 6e 67 20 6f 75 72 | named u|sing our|
|000004c0| 20 72 65 67 69 73 74 65 | 72 65 64 0d 20 2a 20 63 | registe|red. * c|
|000004d0| 72 65 61 74 6f 72 20 63 | 6f 64 65 2e 20 42 65 63 |reator c|ode. Bec|
|000004e0| 61 75 73 65 20 74 68 65 | 20 50 43 49 20 73 79 73 |ause the| PCI sys|
|000004f0| 74 65 6d 20 73 74 6f 72 | 65 73 20 70 72 6f 70 65 |tem stor|es prope|
|00000500| 72 74 69 65 73 20 69 6e | 64 65 78 65 64 20 62 79 |rties in|dexed by|
|00000510| 20 70 68 79 73 69 63 61 | 6c 20 73 6c 6f 74 0d 20 | physica|l slot. |
|00000520| 2a 20 6e 75 6d 62 65 72 | 2c 20 77 65 20 6d 61 79 |* number|, we may|
|00000530| 20 72 65 74 72 69 65 76 | 65 20 61 6e 20 69 6e 63 | retriev|e an inc|
|00000540| 6f 72 72 65 63 74 20 70 | 72 6f 70 65 72 74 79 20 |orrect p|roperty |
|00000550| 69 66 20 74 68 65 20 75 | 73 65 72 20 6d 6f 76 65 |if the u|ser move|
|00000560| 73 20 63 61 72 64 73 20 | 61 72 6f 75 6e 64 2e 0d |s cards |around..|
|00000570| 20 2a 20 54 6f 20 70 72 | 6f 74 65 63 74 20 61 67 | * To pr|otect ag|
|00000580| 61 69 6e 73 74 20 74 68 | 69 73 2c 20 77 65 20 63 |ainst th|is, we c|
|00000590| 68 65 63 6b 20 74 68 65 | 20 70 72 6f 70 65 72 74 |heck the| propert|
|000005a0| 79 20 6e 61 6d 65 2e 0d | 20 2a 0d 20 2a 20 54 68 |y name..| *. * Th|
|000005b0| 69 73 20 66 75 6e 63 74 | 69 6f 6e 20 6d 75 73 74 |is funct|ion must|
|000005c0| 20 62 65 20 63 61 6c 6c | 65 64 20 66 72 6f 6d 20 | be call|ed from |
|000005d0| 61 6e 20 69 6e 69 74 69 | 61 6c 69 7a 61 74 69 6f |an initi|alizatio|
|000005e0| 6e 20 63 6f 6e 74 65 78 | 74 2e 0d 20 2a 0d 20 2a |n contex|t.. *. *|
|000005f0| 20 52 65 74 75 72 6e 20 | 73 74 61 74 75 73 3a 0d | Return |status:.|
|00000600| 20 2a 09 6e 6f 45 72 72 | 09 09 09 53 75 63 63 65 | *.noErr|...Succe|
|00000610| 73 73 3a 20 74 68 65 20 | 4e 56 52 41 4d 20 70 72 |ss: the |NVRAM pr|
|00000620| 6f 70 65 72 74 79 20 77 | 61 73 20 72 65 74 72 69 |operty w|as retri|
|00000630| 65 76 65 64 2e 0d 20 2a | 09 6e 72 4e 6f 74 46 6f |eved.. *|.nrNotFo|
|00000640| 75 6e 64 45 72 72 09 46 | 61 69 6c 75 72 65 3a 20 |undErr.F|ailure: |
|00000650| 74 68 65 72 65 20 77 61 | 73 20 6e 6f 20 4e 56 52 |there wa|s no NVR|
|00000660| 41 4d 20 70 72 6f 70 65 | 72 74 79 2e 0d 20 2a 09 |AM prope|rty.. *.|
|00000670| 70 61 72 61 6d 45 72 72 | 09 09 46 61 69 6c 75 72 |paramErr|..Failur|
|00000680| 65 3a 20 74 68 65 72 65 | 20 77 61 73 20 61 6e 20 |e: there| was an |
|00000690| 4e 56 52 41 4d 20 70 72 | 6f 70 65 72 74 79 2c 20 |NVRAM pr|operty, |
|000006a0| 62 75 74 20 6e 6f 74 20 | 6f 75 72 73 2e 0d 20 2a |but not |ours.. *|
|000006b0| 09 09 09 09 09 09 09 28 | 57 65 20 64 65 6c 65 74 |.......(|We delet|
|000006c0| 65 64 20 69 74 2e 29 0d | 20 2a 09 6f 74 68 65 72 |ed it.).| *.other|
|000006d0| 09 09 09 46 61 69 6c 75 | 72 65 3a 20 75 6e 65 78 |...Failu|re: unex|
|000006e0| 70 65 63 74 65 64 20 4e | 61 6d 65 20 52 65 67 69 |pected N|ame Regi|
|000006f0| 73 74 72 79 20 65 72 72 | 6f 72 2e 0d 20 2a 2f 0d |stry err|or.. */.|
|00000700| 4f 53 45 72 72 0d 52 65 | 74 72 69 65 76 65 44 72 |OSErr.Re|trieveDr|
|00000710| 69 76 65 72 4e 56 52 41 | 4d 50 72 6f 70 65 72 74 |iverNVRA|MPropert|
|00000720| 79 28 0d 09 09 52 65 67 | 45 6e 74 72 79 49 44 50 |y(...Reg|EntryIDP|
|00000730| 74 72 09 09 09 72 65 67 | 45 6e 74 72 79 49 44 50 |tr...reg|EntryIDP|
|00000740| 74 72 2c 09 09 2f 2a 20 | 44 72 69 76 65 72 27 73 |tr,../* |Driver's|
|00000750| 20 4e 61 6d 65 20 52 65 | 67 69 73 74 65 72 79 20 | Name Re|gistery |
|00000760| 49 44 09 2a 2f 0d 09 09 | 4f 53 54 79 70 65 09 09 |ID.*/...|OSType..|
|00000770| 09 09 09 64 72 69 76 65 | 72 43 72 65 61 74 6f 72 |...drive|rCreator|
|00000780| 49 44 2c 09 2f 2a 20 52 | 65 67 69 73 74 65 72 65 |ID,./* R|egistere|
|00000790| 64 20 63 72 65 61 74 6f | 72 20 63 6f 64 65 09 09 |d creato|r code..|
|000007a0| 2a 2f 0d 09 09 55 49 6e | 74 38 09 09 09 09 09 64 |*/...UIn|t8.....d|
|000007b0| 72 69 76 65 72 4e 56 52 | 41 4d 52 65 63 6f 72 64 |riverNVR|AMRecord|
|000007c0| 5b 38 5d 0d 09 29 0d 7b | 0d 09 09 4f 53 45 72 72 |[8]..).{|...OSErr|
|000007d0| 09 09 09 09 09 73 74 61 | 74 75 73 3b 0d 09 09 52 |.....sta|tus;...R|
|000007e0| 65 67 50 72 6f 70 65 72 | 74 79 49 74 65 72 09 09 |egProper|tyIter..|
|000007f0| 09 63 6f 6f 6b 69 65 3b | 0d 09 09 52 65 67 50 72 |.cookie;|...RegPr|
|00000800| 6f 70 65 72 74 79 4e 61 | 6d 65 42 75 66 09 09 70 |opertyNa|meBuf..p|
|00000810| 72 6f 70 65 72 74 79 4e | 61 6d 65 3b 0d 09 09 52 |ropertyN|ame;...R|
|00000820| 65 67 50 72 6f 70 65 72 | 74 79 56 61 6c 75 65 53 |egProper|tyValueS|
|00000830| 69 7a 65 09 72 65 67 50 | 72 6f 70 65 72 74 79 56 |ize.regP|ropertyV|
|00000840| 61 6c 75 65 53 69 7a 65 | 3b 0d 09 09 52 65 67 50 |alueSize|;...RegP|
|00000850| 72 6f 70 65 72 74 79 4d | 6f 64 69 66 69 65 72 73 |ropertyM|odifiers|
|00000860| 09 70 72 6f 70 65 72 74 | 79 4d 6f 64 69 66 69 65 |.propert|yModifie|
|00000870| 72 73 3b 0d 09 09 42 6f | 6f 6c 65 61 6e 09 09 09 |rs;...Bo|olean...|
|00000880| 09 09 64 6f 6e 65 3b 0d | 09 09 63 68 61 72 09 09 |..done;.|..char..|
|00000890| 09 09 09 63 72 65 61 74 | 6f 72 4e 61 6d 65 53 74 |...creat|orNameSt|
|000008a0| 72 69 6e 67 5b 73 69 7a | 65 6f 66 20 28 4f 53 54 |ring[siz|eof (OST|
|000008b0| 79 70 65 29 20 2b 20 31 | 5d 3b 0d 0d 09 09 2f 2a |ype) + 1|];..../*|
|000008c0| 0d 09 09 20 2a 20 53 65 | 61 72 63 68 20 6f 75 72 |... * Se|arch our|
|000008d0| 20 70 72 6f 70 65 72 74 | 69 65 73 20 66 6f 72 20 | propert|ies for |
|000008e0| 6f 6e 65 20 77 69 74 68 | 20 74 68 65 20 4e 56 52 |one with| the NVR|
|000008f0| 41 4d 20 6d 6f 64 69 66 | 69 65 72 20 73 65 74 2e |AM modif|ier set.|
|00000900| 0d 09 09 20 2a 2f 0d 09 | 09 73 74 61 74 75 73 20 |... */..|.status |
|00000910| 3d 20 52 65 67 69 73 74 | 72 79 50 72 6f 70 65 72 |= Regist|ryProper|
|00000920| 74 79 49 74 65 72 61 74 | 65 43 72 65 61 74 65 28 |tyIterat|eCreate(|
|00000930| 72 65 67 45 6e 74 72 79 | 49 44 50 74 72 2c 20 26 |regEntry|IDPtr, &|
|00000940| 63 6f 6f 6b 69 65 29 3b | 0d 09 09 69 66 20 28 73 |cookie);|...if (s|
|00000950| 74 61 74 75 73 20 3d 3d | 20 6e 6f 45 72 72 29 20 |tatus ==| noErr) |
|00000960| 7b 0d 09 09 09 77 68 69 | 6c 65 20 28 73 74 61 74 |{....whi|le (stat|
|00000970| 75 73 20 3d 3d 20 6e 6f | 45 72 72 29 20 7b 0d 09 |us == no|Err) {..|
|00000980| 09 09 09 2f 2a 0d 09 09 | 09 09 20 2a 20 47 65 74 |.../*...|.. * Get|
|00000990| 20 74 68 65 20 6e 65 78 | 74 20 70 72 6f 70 65 72 | the nex|t proper|
|000009a0| 74 79 20 61 6e 64 20 63 | 68 65 63 6b 20 69 74 73 |ty and c|heck its|
|000009b0| 20 6d 6f 64 69 66 69 65 | 72 2e 20 42 72 65 61 6b | modifie|r. Break|
|000009c0| 20 69 66 20 74 68 69 73 | 20 69 73 20 74 68 65 0d | if this| is the.|
|000009d0| 09 09 09 09 20 2a 20 4e | 56 52 41 4d 20 70 72 6f |.... * N|VRAM pro|
|000009e0| 70 65 72 74 79 20 28 74 | 68 65 72 65 20 63 61 6e |perty (t|here can|
|000009f0| 20 62 65 20 6f 6e 6c 79 | 20 6f 6e 65 20 66 6f 72 | be only| one for|
|00000a00| 20 6f 75 72 20 65 6e 74 | 72 79 20 49 44 29 2e 0d | our ent|ry ID)..|
|00000a10| 09 09 09 09 20 2a 2f 0d | 09 09 09 09 73 74 61 74 |.... */.|....stat|
|00000a20| 75 73 20 3d 20 52 65 67 | 69 73 74 72 79 50 72 6f |us = Reg|istryPro|
|00000a30| 70 65 72 74 79 49 74 65 | 72 61 74 65 28 26 63 6f |pertyIte|rate(&co|
|00000a40| 6f 6b 69 65 2c 20 70 72 | 6f 70 65 72 74 79 4e 61 |okie, pr|opertyNa|
|00000a50| 6d 65 2c 20 26 64 6f 6e | 65 29 3b 0d 09 09 09 09 |me, &don|e);.....|
|00000a60| 69 66 20 28 73 74 61 74 | 75 73 20 3d 3d 20 6e 6f |if (stat|us == no|
|00000a70| 45 72 72 20 26 26 20 64 | 6f 6e 65 20 3d 3d 20 46 |Err && d|one == F|
|00000a80| 41 4c 53 45 29 20 7b 0d | 09 09 09 09 09 73 74 61 |ALSE) {.|.....sta|
|00000a90| 74 75 73 20 3d 20 52 65 | 67 69 73 74 72 79 50 72 |tus = Re|gistryPr|
|00000aa0| 6f 70 65 72 74 79 47 65 | 74 4d 6f 64 28 0d 09 09 |opertyGe|tMod(...|
|00000ab0| 09 09 09 09 09 09 72 65 | 67 45 6e 74 72 79 49 44 |......re|gEntryID|
|00000ac0| 50 74 72 2c 0d 09 09 09 | 09 09 09 09 09 70 72 6f |Ptr,....|.....pro|
|00000ad0| 70 65 72 74 79 4e 61 6d | 65 2c 0d 09 09 09 09 09 |pertyNam|e,......|
|00000ae0| 09 09 09 26 70 72 6f 70 | 65 72 74 79 4d 6f 64 69 |...&prop|ertyModi|
|00000af0| 66 69 65 72 73 0d 09 09 | 09 09 09 09 09 29 3b 0d |fiers...|.....);.|
|00000b00| 09 09 09 09 09 43 68 65 | 63 6b 53 74 61 74 75 73 |.....Che|ckStatus|
|00000b10| 28 73 74 61 74 75 73 2c | 20 22 5c 70 52 65 67 69 |(status,| "\pRegi|
|00000b20| 73 74 72 79 50 72 6f 70 | 65 72 74 79 47 65 74 4d |stryProp|ertyGetM|
|00000b30| 6f 64 20 4e 56 52 41 4d | 20 66 61 69 6c 65 64 22 |od NVRAM| failed"|
|00000b40| 29 3b 0d 09 09 09 09 09 | 69 66 20 28 73 74 61 74 |);......|if (stat|
|00000b50| 75 73 20 3d 3d 20 6e 6f | 45 72 72 0d 09 09 09 09 |us == no|Err.....|
|00000b60| 09 20 26 26 20 28 70 72 | 6f 70 65 72 74 79 4d 6f |. && (pr|opertyMo|
|00000b70| 64 69 66 69 65 72 73 20 | 26 20 6b 52 65 67 50 72 |difiers |& kRegPr|
|00000b80| 6f 70 65 72 74 79 56 61 | 6c 75 65 49 73 53 61 76 |opertyVa|lueIsSav|
|00000b90| 65 64 54 6f 4e 56 52 41 | 4d 29 20 21 3d 20 30 29 |edToNVRA|M) != 0)|
|00000ba0| 0d 09 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |.......b|reak;...|
|00000bb0| 09 09 7d 0d 09 09 09 09 | 2f 2a 0d 09 09 09 09 20 |..}.....|/*..... |
|00000bc0| 2a 20 54 68 65 72 65 20 | 77 61 73 20 6e 6f 20 4e |* There |was no N|
|00000bd0| 56 52 41 4d 20 70 72 6f | 70 65 72 74 79 2e 20 52 |VRAM pro|perty. R|
|00000be0| 65 74 75 72 6e 20 6e 72 | 4e 6f 74 46 6f 75 6e 64 |eturn nr|NotFound|
|00000bf0| 45 72 72 20 62 79 20 63 | 6f 6e 76 65 6e 74 69 6f |Err by c|onventio|
|00000c00| 6e 2e 0d 09 09 09 09 20 | 2a 2f 0d 09 09 09 09 69 |n...... |*/.....i|
|00000c10| 66 20 28 73 74 61 74 75 | 73 20 3d 3d 20 6e 6f 45 |f (statu|s == noE|
|00000c20| 72 72 20 26 26 20 64 6f | 6e 65 29 0d 09 09 09 09 |rr && do|ne).....|
|00000c30| 09 73 74 61 74 75 73 20 | 3d 20 6e 72 4e 6f 74 46 |.status |= nrNotF|
|00000c40| 6f 75 6e 64 45 72 72 3b | 0d 09 09 09 7d 0d 09 09 |oundErr;|....}...|
|00000c50| 09 52 65 67 69 73 74 72 | 79 50 72 6f 70 65 72 74 |.Registr|yPropert|
|00000c60| 79 49 74 65 72 61 74 65 | 44 69 73 70 6f 73 65 28 |yIterate|Dispose(|
|00000c70| 26 63 6f 6f 6b 69 65 29 | 3b 0d 09 09 09 2f 2a 0d |&cookie)|;..../*.|
|00000c80| 09 09 09 20 2a 20 49 66 | 20 73 74 61 74 75 73 20 |... * If| status |
|00000c90| 3d 3d 20 6e 6f 45 72 72 | 2c 20 77 65 20 68 61 76 |== noErr|, we hav|
|00000ca0| 65 20 66 6f 75 6e 64 20 | 61 6e 20 4e 56 52 41 4d |e found |an NVRAM|
|00000cb0| 20 70 72 6f 70 65 72 74 | 79 2e 20 4e 6f 77 2c 0d | propert|y. Now,.|
|00000cc0| 09 09 09 20 2a 09 31 2e | 20 49 66 20 69 74 20 69 |... *.1.| If it i|
|00000cd0| 73 20 6f 75 72 20 63 72 | 65 61 74 6f 72 20 63 6f |s our cr|eator co|
|00000ce0| 64 65 2c 20 77 65 20 68 | 61 76 65 20 66 6f 75 6e |de, we h|ave foun|
|00000cf0| 64 20 74 68 65 20 70 72 | 6f 70 65 72 74 79 2c 20 |d the pr|operty, |
|00000d00| 73 6f 0d 09 09 09 20 2a | 09 09 77 65 20 72 65 74 |so.... *|..we ret|
|00000d10| 72 69 65 76 65 20 74 68 | 65 20 76 61 6c 75 65 73 |rieve th|e values|
|00000d20| 20 61 6e 64 20 73 74 6f | 72 65 20 74 68 65 6d 20 | and sto|re them |
|00000d30| 69 6e 20 74 68 65 20 64 | 72 69 76 65 72 27 73 20 |in the d|river's |
|00000d40| 67 6c 6f 62 61 6c 73 2e | 0d 09 09 09 20 2a 09 32 |globals.|.... *.2|
|00000d50| 2e 20 49 66 20 69 74 20 | 77 61 73 20 66 6f 75 6e |. If it |was foun|
|00000d60| 64 20 77 69 74 68 20 61 | 20 64 69 66 66 65 72 65 |d with a| differe|
|00000d70| 6e 74 20 63 72 65 61 74 | 6f 72 20 63 6f 64 65 2c |nt creat|or code,|
|00000d80| 20 74 68 65 20 75 73 65 | 72 20 68 61 73 0d 09 09 | the use|r has...|
|00000d90| 09 20 2a 09 09 6d 6f 76 | 65 64 20 6f 75 72 20 63 |. *..mov|ed our c|
|00000da0| 61 72 64 20 74 6f 20 61 | 20 73 6c 6f 74 20 74 68 |ard to a| slot th|
|00000db0| 61 74 20 70 72 65 76 69 | 6f 75 73 6c 79 20 68 61 |at previ|ously ha|
|00000dc0| 64 20 61 20 64 69 66 66 | 65 72 65 6e 74 20 63 61 |d a diff|erent ca|
|00000dd0| 72 64 0d 09 09 09 20 2a | 09 09 69 6e 73 74 61 6c |rd.... *|..instal|
|00000de0| 6c 65 64 2c 20 73 6f 20 | 64 65 6c 65 74 65 20 74 |led, so |delete t|
|00000df0| 68 69 73 20 70 72 6f 70 | 65 72 74 79 20 61 6e 64 |his prop|erty and|
|00000e00| 20 72 65 74 75 72 6e 20 | 28 6e 6f 45 72 72 29 20 | return |(noErr) |
|00000e10| 74 6f 20 75 73 65 0d 09 | 09 09 20 2a 09 09 74 68 |to use..|.. *..th|
|00000e20| 65 20 66 61 63 74 6f 72 | 79 20 64 65 66 61 75 6c |e factor|y defaul|
|00000e30| 74 73 2e 0d 09 09 09 20 | 2a 09 33 2e 20 49 66 20 |ts..... |*.3. If |
|00000e40| 69 74 20 77 61 73 20 6e | 6f 74 20 66 6f 75 6e 64 |it was n|ot found|
|00000e50| 2c 20 74 68 65 20 70 72 | 6f 70 65 72 74 79 20 77 |, the pr|operty w|
|00000e60| 61 73 20 6e 6f 74 20 73 | 65 74 2c 20 73 6f 20 77 |as not s|et, so w|
|00000e70| 65 20 65 78 69 74 0d 09 | 09 09 20 2a 09 09 28 6e |e exit..|.. *..(n|
|00000e80| 6f 45 72 72 29 20 2d 2d | 20 74 68 65 20 63 61 6c |oErr) --| the cal|
|00000e90| 6c 65 72 20 77 69 6c 6c | 20 68 61 76 65 20 70 72 |ler will| have pr|
|00000ea0| 65 2d 73 65 74 20 74 68 | 65 20 76 61 6c 75 65 73 |e-set th|e values|
|00000eb0| 20 74 6f 0d 09 09 09 20 | 2a 09 09 22 66 61 63 74 | to.... |*.."fact|
|00000ec0| 6f 72 79 20 64 65 66 61 | 75 6c 74 73 2e 22 0d 09 |ory defa|ults."..|
|00000ed0| 09 09 20 2a 2f 0d 09 09 | 09 69 66 20 28 73 74 61 |.. */...|.if (sta|
|00000ee0| 74 75 73 20 3d 3d 20 6e | 6f 45 72 72 29 20 7b 0d |tus == n|oErr) {.|
|00000ef0| 09 09 09 09 2f 2a 0d 09 | 09 09 09 20 2a 20 43 61 |..../*..|... * Ca|
|00000f00| 73 65 73 20 31 20 6f 72 | 20 32 2c 20 63 68 65 63 |ses 1 or| 2, chec|
|00000f10| 6b 20 74 68 65 20 70 72 | 6f 70 65 72 74 79 2e 0d |k the pr|operty..|
|00000f20| 09 09 09 09 20 2a 2f 0d | 09 09 09 09 43 6f 70 79 |.... */.|....Copy|
|00000f30| 4f 53 54 79 70 65 54 6f | 43 53 74 72 69 6e 67 28 |OSTypeTo|CString(|
|00000f40| 26 64 72 69 76 65 72 43 | 72 65 61 74 6f 72 49 44 |&driverC|reatorID|
|00000f50| 2c 20 63 72 65 61 74 6f | 72 4e 61 6d 65 53 74 72 |, creato|rNameStr|
|00000f60| 69 6e 67 29 3b 0d 09 09 | 09 09 69 66 20 28 43 53 |ing);...|..if (CS|
|00000f70| 74 72 43 6d 70 28 63 72 | 65 61 74 6f 72 4e 61 6d |trCmp(cr|eatorNam|
|00000f80| 65 53 74 72 69 6e 67 2c | 20 70 72 6f 70 65 72 74 |eString,| propert|
|00000f90| 79 4e 61 6d 65 29 20 3d | 3d 20 30 29 20 7b 09 2f |yName) =|= 0) {./|
|00000fa0| 2a 20 4d 61 74 63 68 20 | 09 2a 2f 0d 09 09 09 09 |* Match |.*/.....|
|00000fb0| 09 73 74 61 74 75 73 20 | 3d 20 52 65 67 69 73 74 |.status |= Regist|
|00000fc0| 72 79 50 72 6f 70 65 72 | 74 79 47 65 74 53 69 7a |ryProper|tyGetSiz|
|00000fd0| 65 28 0d 09 09 09 09 09 | 09 09 09 72 65 67 45 6e |e(......|...regEn|
|00000fe0| 74 72 79 49 44 50 74 72 | 2c 0d 09 09 09 09 09 09 |tryIDPtr|,.......|
|00000ff0| 09 09 70 72 6f 70 65 72 | 74 79 4e 61 6d 65 2c 0d |..proper|tyName,.|
|00001000| 09 09 09 09 09 09 09 09 | 26 72 65 67 50 72 6f 70 |........|&regProp|
|00001010| 65 72 74 79 56 61 6c 75 | 65 53 69 7a 65 0d 09 09 |ertyValu|eSize...|
|00001020| 09 09 09 09 09 29 3b 0d | 09 09 09 09 09 43 68 65 |.....);.|.....Che|
|00001030| 63 6b 53 74 61 74 75 73 | 28 73 74 61 74 75 73 2c |ckStatus|(status,|
|00001040| 20 22 5c 70 52 65 67 69 | 73 74 72 79 50 72 6f 70 | "\pRegi|stryProp|
|00001050| 65 72 74 79 47 65 74 53 | 69 7a 65 20 4e 56 52 41 |ertyGetS|ize NVRA|
|00001060| 4d 20 66 61 69 6c 65 64 | 22 29 3b 0d 09 09 09 09 |M failed|");.....|
|00001070| 09 69 66 20 28 73 74 61 | 74 75 73 20 3d 3d 20 6e |.if (sta|tus == n|
|00001080| 6f 45 72 72 0d 09 09 09 | 09 09 20 26 26 20 72 65 |oErr....|.. && re|
|00001090| 67 50 72 6f 70 65 72 74 | 79 56 61 6c 75 65 53 69 |gPropert|yValueSi|
|000010a0| 7a 65 20 3d 3d 20 73 69 | 7a 65 6f 66 20 64 72 69 |ze == si|zeof dri|
|000010b0| 76 65 72 4e 56 52 41 4d | 52 65 63 6f 72 64 29 20 |verNVRAM|Record) |
|000010c0| 7b 0d 09 09 09 09 09 09 | 73 74 61 74 75 73 20 3d |{.......|status =|
|000010d0| 20 52 65 67 69 73 74 72 | 79 50 72 6f 70 65 72 74 | Registr|yPropert|
|000010e0| 79 47 65 74 28 0d 09 09 | 09 09 09 09 09 09 09 72 |yGet(...|.......r|
|000010f0| 65 67 45 6e 74 72 79 49 | 44 50 74 72 2c 0d 09 09 |egEntryI|DPtr,...|
|00001100| 09 09 09 09 09 09 09 70 | 72 6f 70 65 72 74 79 4e |.......p|ropertyN|
|00001110| 61 6d 65 2c 0d 09 09 09 | 09 09 09 09 09 09 64 72 |ame,....|......dr|
|00001120| 69 76 65 72 4e 56 52 41 | 4d 52 65 63 6f 72 64 2c |iverNVRA|MRecord,|
|00001130| 0d 09 09 09 09 09 09 09 | 09 09 26 72 65 67 50 72 |........|..&regPr|
|00001140| 6f 70 65 72 74 79 56 61 | 6c 75 65 53 69 7a 65 0d |opertyVa|lueSize.|
|00001150| 09 09 09 09 09 09 09 09 | 29 3b 0d 09 09 09 09 09 |........|);......|
|00001160| 09 43 68 65 63 6b 53 74 | 61 74 75 73 28 73 74 61 |.CheckSt|atus(sta|
|00001170| 74 75 73 2c 20 22 5c 70 | 52 65 67 69 73 74 72 79 |tus, "\p|Registry|
|00001180| 50 72 6f 70 65 72 74 79 | 47 65 74 20 4e 56 52 41 |Property|Get NVRA|
|00001190| 4d 20 66 61 69 6c 65 64 | 22 29 3b 0d 09 09 09 09 |M failed|");.....|
|000011a0| 09 7d 0d 09 09 09 09 7d | 0d 09 09 09 09 65 6c 73 |.}.....}|.....els|
|000011b0| 65 20 7b 0d 09 09 09 09 | 09 2f 2a 0d 09 09 09 09 |e {.....|./*.....|
|000011c0| 09 20 2a 20 54 68 69 73 | 20 69 73 20 61 6e 20 4e |. * This| is an N|
|000011d0| 56 52 41 4d 20 70 72 6f | 70 65 72 74 79 2c 20 62 |VRAM pro|perty, b|
|000011e0| 75 74 20 69 74 20 69 73 | 6e 27 74 20 6f 75 72 73 |ut it is|n't ours|
|000011f0| 2e 20 44 65 6c 65 74 65 | 20 74 68 65 0d 09 09 09 |. Delete| the....|
|00001200| 09 09 20 2a 20 70 72 6f | 70 65 72 74 79 20 61 6e |.. * pro|perty an|
|00001210| 64 20 72 65 74 75 72 6e | 20 61 6e 20 65 72 72 6f |d return| an erro|
|00001220| 72 20 73 74 61 74 75 73 | 20 73 6f 20 74 68 65 20 |r status| so the |
|00001230| 63 61 6c 6c 65 72 20 75 | 73 65 73 0d 09 09 09 09 |caller u|ses.....|
|00001240| 09 20 2a 20 22 66 61 63 | 74 6f 72 79 20 73 65 74 |. * "fac|tory set|
|00001250| 74 69 6e 67 73 22 0d 09 | 09 09 09 09 20 2a 2f 0d |tings"..|.... */.|
|00001260| 09 09 09 09 09 73 74 61 | 74 75 73 20 3d 20 52 65 |.....sta|tus = Re|
|00001270| 67 69 73 74 72 79 50 72 | 6f 70 65 72 74 79 44 65 |gistryPr|opertyDe|
|00001280| 6c 65 74 65 28 0d 09 09 | 09 09 09 09 09 09 72 65 |lete(...|......re|
|00001290| 67 45 6e 74 72 79 49 44 | 50 74 72 2c 0d 09 09 09 |gEntryID|Ptr,....|
|000012a0| 09 09 09 09 09 70 72 6f | 70 65 72 74 79 4e 61 6d |.....pro|pertyNam|
|000012b0| 65 0d 09 09 09 09 09 09 | 09 29 3b 0d 09 09 09 09 |e.......|.);.....|
|000012c0| 09 43 68 65 63 6b 53 74 | 61 74 75 73 28 73 74 61 |.CheckSt|atus(sta|
|000012d0| 74 75 73 2c 20 22 5c 70 | 52 65 67 69 73 74 72 79 |tus, "\p|Registry|
|000012e0| 50 72 6f 70 65 72 74 79 | 44 65 6c 65 74 65 20 62 |Property|Delete b|
|000012f0| 61 64 20 4e 56 52 41 4d | 20 65 6e 74 72 79 22 29 |ad NVRAM| entry")|
|00001300| 3b 0d 09 09 09 09 09 2f | 2a 0d 09 09 09 09 09 20 |;....../|*...... |
|00001310| 2a 20 53 69 6e 63 65 20 | 77 65 27 72 65 20 72 65 |* Since |we're re|
|00001320| 74 75 72 6e 69 6e 67 20 | 61 6e 20 65 72 72 6f 72 |turning |an error|
|00001330| 20 61 6e 79 77 61 79 2c | 20 77 65 20 69 67 6e 6f | anyway,| we igno|
|00001340| 72 65 20 74 68 65 0d 09 | 09 09 09 09 20 2a 20 73 |re the..|.... * s|
|00001350| 74 61 74 75 73 20 63 6f | 64 65 2e 0d 09 09 09 09 |tatus co|de......|
|00001360| 09 20 2a 2f 0d 09 09 09 | 09 09 73 74 61 74 75 73 |. */....|..status|
|00001370| 20 3d 20 70 61 72 61 6d | 45 72 72 3b 0d 09 09 09 | = param|Err;....|
|00001380| 09 7d 0d 09 09 09 7d 0d | 09 09 7d 0d 09 09 72 65 |.}....}.|..}...re|
|00001390| 74 75 72 6e 20 28 73 74 | 61 74 75 73 29 3b 0d 7d |turn (st|atus);.}|
|000013a0| 0d 0d 2f 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a |../* * *| * * * *|
|000013b0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000013c0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000013d0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000013e0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|000013f0| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 0d 20 2a 20 | * * * *| * *. * |
|00001400| 47 65 74 20 74 68 65 20 | 4e 56 52 41 4d 20 70 72 |Get the |NVRAM pr|
|00001410| 6f 70 65 72 74 79 2e 20 | 52 65 74 75 72 6e 20 61 |operty. |Return a|
|00001420| 6e 20 65 72 72 6f 72 20 | 69 66 20 69 74 20 64 6f |n error |if it do|
|00001430| 65 73 20 6e 6f 74 20 65 | 78 69 73 74 2c 20 69 73 |es not e|xist, is|
|00001440| 20 74 68 65 20 77 72 6f | 6e 67 20 73 69 7a 65 2c | the wro|ng size,|
|00001450| 20 6f 72 0d 20 2a 20 69 | 73 20 6e 6f 74 20 6d 61 | or. * i|s not ma|
|00001460| 72 6b 65 64 20 22 73 74 | 6f 72 65 20 69 6e 20 4e |rked "st|ore in N|
|00001470| 56 52 41 4d 2e 22 20 54 | 68 69 73 20 6d 61 79 20 |VRAM." T|his may |
|00001480| 62 65 20 63 61 6c 6c 65 | 64 20 66 72 6f 6d 20 61 |be calle|d from a|
|00001490| 20 6e 6f 6e 2d 69 6e 69 | 74 69 61 6c 69 7a 61 74 | non-ini|tializat|
|000014a0| 69 6f 6e 20 63 6f 6e 74 | 65 78 74 2e 0d 20 2a 20 |ion cont|ext.. * |
|000014b0| 45 72 72 6f 72 73 3a 0d | 20 2a 09 6e 72 4e 6f 74 |Errors:.| *.nrNot|
|000014c0| 46 6f 75 6e 64 45 72 72 | 09 09 4e 6f 74 20 66 6f |FoundErr|..Not fo|
|000014d0| 75 6e 64 20 69 6e 20 74 | 68 65 20 72 65 67 69 73 |und in t|he regis|
|000014e0| 74 72 79 0d 20 2a 09 6e | 72 44 61 74 61 54 72 75 |try. *.n|rDataTru|
|000014f0| 6e 63 61 74 65 64 45 72 | 72 09 57 72 6f 6e 67 20 |ncatedEr|r.Wrong |
|00001500| 73 69 7a 65 0d 20 2a 09 | 70 61 72 61 6d 45 72 72 |size. *.|paramErr|
|00001510| 09 09 09 4e 6f 74 20 6d | 61 72 6b 65 64 20 22 73 |...Not m|arked "s|
|00001520| 74 6f 72 65 20 69 6e 20 | 4e 56 52 41 4d 22 0d 20 |tore in |NVRAM". |
|00001530| 2a 2f 0d 4f 53 45 72 72 | 0d 47 65 74 44 72 69 76 |*/.OSErr|.GetDriv|
|00001540| 65 72 4e 56 52 41 4d 50 | 72 6f 70 65 72 74 79 28 |erNVRAMP|roperty(|
|00001550| 0d 09 09 52 65 67 45 6e | 74 72 79 49 44 50 74 72 |...RegEn|tryIDPtr|
|00001560| 09 09 09 72 65 67 45 6e | 74 72 79 49 44 50 74 72 |...regEn|tryIDPtr|
|00001570| 2c 09 09 09 2f 2a 20 44 | 72 69 76 65 72 27 73 20 |,.../* D|river's |
|00001580| 4e 61 6d 65 20 52 65 67 | 69 73 74 65 72 79 20 49 |Name Reg|istery I|
|00001590| 44 09 2a 2f 0d 09 09 4f | 53 54 79 70 65 09 09 09 |D.*/...O|SType...|
|000015a0| 09 09 64 72 69 76 65 72 | 43 72 65 61 74 6f 72 49 |..driver|CreatorI|
|000015b0| 44 2c 09 09 2f 2a 20 52 | 65 67 69 73 74 65 72 65 |D,../* R|egistere|
|000015c0| 64 20 63 72 65 61 74 6f | 72 20 63 6f 64 65 09 09 |d creato|r code..|
|000015d0| 2a 2f 0d 09 09 55 49 6e | 74 38 09 09 09 09 09 64 |*/...UIn|t8.....d|
|000015e0| 72 69 76 65 72 4e 56 52 | 41 4d 52 65 63 6f 72 64 |riverNVR|AMRecord|
|000015f0| 5b 38 5d 09 2f 2a 20 4d | 61 6e 64 61 74 65 64 20 |[8]./* M|andated |
|00001600| 73 69 7a 65 09 09 09 09 | 2a 2f 0d 09 29 0d 7b 0d |size....|*/..).{.|
|00001610| 09 09 4f 53 45 72 72 09 | 09 09 09 09 73 74 61 74 |..OSErr.|....stat|
|00001620| 75 73 3b 0d 09 09 63 68 | 61 72 09 09 09 09 09 63 |us;...ch|ar.....c|
|00001630| 72 65 61 74 6f 72 4e 61 | 6d 65 53 74 72 69 6e 67 |reatorNa|meString|
|00001640| 5b 73 69 7a 65 6f 66 20 | 28 4f 53 54 79 70 65 29 |[sizeof |(OSType)|
|00001650| 20 2b 20 31 5d 3b 0d 09 | 09 52 65 67 50 72 6f 70 | + 1];..|.RegProp|
|00001660| 65 72 74 79 56 61 6c 75 | 65 53 69 7a 65 09 73 69 |ertyValu|eSize.si|
|00001670| 7a 65 3b 0d 09 09 52 65 | 67 50 72 6f 70 65 72 74 |ze;...Re|gPropert|
|00001680| 79 4d 6f 64 69 66 69 65 | 72 73 09 6d 6f 64 69 66 |yModifie|rs.modif|
|00001690| 69 65 72 73 3b 0d 0d 09 | 09 43 6f 70 79 4f 53 54 |iers;...|.CopyOST|
|000016a0| 79 70 65 54 6f 43 53 74 | 72 69 6e 67 28 26 64 72 |ypeToCSt|ring(&dr|
|000016b0| 69 76 65 72 43 72 65 61 | 74 6f 72 49 44 2c 20 63 |iverCrea|torID, c|
|000016c0| 72 65 61 74 6f 72 4e 61 | 6d 65 53 74 72 69 6e 67 |reatorNa|meString|
|000016d0| 29 3b 0d 09 09 73 74 61 | 74 75 73 20 3d 20 52 65 |);...sta|tus = Re|
|000016e0| 67 69 73 74 72 79 50 72 | 6f 70 65 72 74 79 47 65 |gistryPr|opertyGe|
|000016f0| 74 53 69 7a 65 28 0d 09 | 09 09 72 65 67 45 6e 74 |tSize(..|..regEnt|
|00001700| 72 79 49 44 50 74 72 2c | 0d 09 09 09 63 72 65 61 |ryIDPtr,|....crea|
|00001710| 74 6f 72 4e 61 6d 65 53 | 74 72 69 6e 67 2c 0d 09 |torNameS|tring,..|
|00001720| 09 09 26 73 69 7a 65 0d | 09 09 29 3b 0d 09 09 69 |..&size.|..);...i|
|00001730| 66 20 28 73 74 61 74 75 | 73 20 3d 3d 20 6e 6f 45 |f (statu|s == noE|
|00001740| 72 72 20 26 26 20 73 69 | 7a 65 20 21 3d 20 73 69 |rr && si|ze != si|
|00001750| 7a 65 6f 66 20 64 72 69 | 76 65 72 4e 56 52 41 4d |zeof dri|verNVRAM|
|00001760| 52 65 63 6f 72 64 29 0d | 09 09 09 73 74 61 74 75 |Record).|...statu|
|00001770| 73 20 3d 20 6e 72 44 61 | 74 61 54 72 75 6e 63 61 |s = nrDa|taTrunca|
|00001780| 74 65 64 45 72 72 3b 0d | 09 09 69 66 20 28 73 74 |tedErr;.|..if (st|
|00001790| 61 74 75 73 20 3d 3d 20 | 6e 6f 45 72 72 29 20 7b |atus == |noErr) {|
|000017a0| 0d 09 09 09 73 74 61 74 | 75 73 20 3d 20 52 65 67 |....stat|us = Reg|
|000017b0| 69 73 74 72 79 50 72 6f | 70 65 72 74 79 47 65 74 |istryPro|pertyGet|
|000017c0| 4d 6f 64 28 0d 09 09 09 | 09 09 09 72 65 67 45 6e |Mod(....|...regEn|
|000017d0| 74 72 79 49 44 50 74 72 | 2c 0d 09 09 09 09 09 09 |tryIDPtr|,.......|
|000017e0| 63 72 65 61 74 6f 72 4e | 61 6d 65 53 74 72 69 6e |creatorN|ameStrin|
|000017f0| 67 2c 0d 09 09 09 09 09 | 09 26 6d 6f 64 69 66 69 |g,......|.&modifi|
|00001800| 65 72 73 0d 09 09 09 09 | 09 29 3b 0d 09 09 7d 0d |ers.....|.);...}.|
|00001810| 09 09 69 66 20 28 73 74 | 61 74 75 73 20 3d 3d 20 |..if (st|atus == |
|00001820| 6e 6f 45 72 72 0d 09 09 | 20 26 26 20 28 6d 6f 64 |noErr...| && (mod|
|00001830| 69 66 69 65 72 73 20 26 | 20 6b 52 65 67 50 72 6f |ifiers &| kRegPro|
|00001840| 70 65 72 74 79 56 61 6c | 75 65 49 73 53 61 76 65 |pertyVal|ueIsSave|
|00001850| 64 54 6f 4e 56 52 41 4d | 29 20 3d 3d 20 30 29 0d |dToNVRAM|) == 0).|
|00001860| 09 09 20 09 73 74 61 74 | 75 73 20 3d 20 70 61 72 |.. .stat|us = par|
|00001870| 61 6d 45 72 72 3b 0d 09 | 09 69 66 20 28 73 74 61 |amErr;..|.if (sta|
|00001880| 74 75 73 20 3d 3d 20 6e | 6f 45 72 72 29 20 7b 0d |tus == n|oErr) {.|
|00001890| 09 09 09 73 74 61 74 75 | 73 20 3d 20 52 65 67 69 |...statu|s = Regi|
|000018a0| 73 74 72 79 50 72 6f 70 | 65 72 74 79 47 65 74 28 |stryProp|ertyGet(|
|000018b0| 0d 09 09 09 09 09 09 72 | 65 67 45 6e 74 72 79 49 |.......r|egEntryI|
|000018c0| 44 50 74 72 2c 0d 09 09 | 09 09 09 09 63 72 65 61 |DPtr,...|....crea|
|000018d0| 74 6f 72 4e 61 6d 65 53 | 74 72 69 6e 67 2c 0d 09 |torNameS|tring,..|
|000018e0| 09 09 09 09 09 64 72 69 | 76 65 72 4e 56 52 41 4d |.....dri|verNVRAM|
|000018f0| 52 65 63 6f 72 64 2c 0d | 09 09 09 09 09 09 26 73 |Record,.|......&s|
|00001900| 69 7a 65 0d 09 09 09 09 | 09 29 3b 0d 09 09 7d 0d |ize.....|.);...}.|
|00001910| 09 09 72 65 74 75 72 6e | 20 28 73 74 61 74 75 73 |..return| (status|
|00001920| 29 3b 0d 7d 0d 0d 2f 2a | 20 2a 20 2a 20 2a 20 2a |);.}../*| * * * *|
|00001930| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00001940| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00001950| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00001960| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00001970| 20 2a 20 2a 20 2a 20 2a | 20 2a 20 2a 20 2a 20 2a | * * * *| * * * *|
|00001980| 0d 20 2a 20 55 70 64 61 | 74 65 20 74 68 65 20 4e |. * Upda|te the N|
|00001990| 56 52 41 4d 20 70 72 6f | 70 65 72 74 79 2e 20 52 |VRAM pro|perty. R|
|000019a0| 65 74 75 72 6e 20 61 6e | 20 65 72 72 6f 72 20 69 |eturn an| error i|
|000019b0| 66 20 69 74 20 77 61 73 | 20 6e 6f 74 20 63 72 65 |f it was| not cre|
|000019c0| 61 74 65 64 2e 20 54 68 | 69 73 20 6d 61 79 20 62 |ated. Th|is may b|
|000019d0| 65 20 63 61 6c 6c 65 64 | 0d 20 2a 20 66 72 6f 6d |e called|. * from|
|000019e0| 20 50 42 53 74 61 74 75 | 73 20 28 6f 72 20 6f 74 | PBStatu|s (or ot|
|000019f0| 68 65 72 20 6e 6f 6e 2d | 69 6e 69 74 69 61 6c 69 |her non-|initiali|
|00001a00| 7a 61 74 69 6f 6e 20 63 | 6f 6e 74 65 78 74 29 2e |zation c|ontext).|
|00001a10| 0d 20 2a 2f 0d 4f 53 45 | 72 72 0d 55 70 64 61 74 |. */.OSE|rr.Updat|
|00001a20| 65 44 72 69 76 65 72 4e | 56 52 41 4d 50 72 6f 70 |eDriverN|VRAMProp|
|00001a30| 65 72 74 79 28 0d 09 09 | 52 65 67 45 6e 74 72 79 |erty(...|RegEntry|
|00001a40| 49 44 50 74 72 09 09 09 | 72 65 67 45 6e 74 72 79 |IDPtr...|regEntry|
|00001a50| 49 44 50 74 72 2c 09 09 | 09 2f 2a 20 44 72 69 76 |IDPtr,..|./* Driv|
|00001a60| 65 72 27 73 20 4e 61 6d | 65 20 52 65 67 69 73 74 |er's Nam|e Regist|
|00001a70| 65 72 79 20 49 44 09 2a | 2f 0d 09 09 4f 53 54 79 |ery ID.*|/...OSTy|
|00001a80| 70 65 09 09 09 09 09 64 | 72 69 76 65 72 43 72 65 |pe.....d|riverCre|
|00001a90| 61 74 6f 72 49 44 2c 09 | 09 2f 2a 20 52 65 67 69 |atorID,.|./* Regi|
|00001aa0| 73 74 65 72 65 64 20 63 | 72 65 61 74 6f 72 20 63 |stered c|reator c|
|00001ab0| 6f 64 65 09 09 2a 2f 0d | 09 09 55 49 6e 74 38 09 |ode..*/.|..UInt8.|
|00001ac0| 09 09 09 09 64 72 69 76 | 65 72 4e 56 52 41 4d 52 |....driv|erNVRAMR|
|00001ad0| 65 63 6f 72 64 5b 38 5d | 09 2f 2a 20 4d 61 6e 64 |ecord[8]|./* Mand|
|00001ae0| 61 74 65 64 20 73 69 7a | 65 09 09 09 09 2a 2f 0d |ated siz|e....*/.|
|00001af0| 09 29 0d 7b 0d 09 09 4f | 53 45 72 72 09 09 09 09 |.).{...O|SErr....|
|00001b00| 09 73 74 61 74 75 73 3b | 0d 09 09 63 68 61 72 09 |.status;|...char.|
|00001b10| 09 09 09 09 63 72 65 61 | 74 6f 72 4e 61 6d 65 53 |....crea|torNameS|
|00001b20| 74 72 69 6e 67 5b 73 69 | 7a 65 6f 66 20 28 4f 53 |tring[si|zeof (OS|
|00001b30| 54 79 70 65 29 20 2b 20 | 31 5d 3b 0d 0d 09 09 54 |Type) + |1];....T|
|00001b40| 72 61 63 65 28 55 70 64 | 61 74 65 44 72 69 76 65 |race(Upd|ateDrive|
|00001b50| 72 4e 56 52 41 4d 50 72 | 6f 70 65 72 74 79 29 3b |rNVRAMPr|operty);|
|00001b60| 0d 09 09 43 6f 70 79 4f | 53 54 79 70 65 54 6f 43 |...CopyO|STypeToC|
|00001b70| 53 74 72 69 6e 67 28 26 | 64 72 69 76 65 72 43 72 |String(&|driverCr|
|00001b80| 65 61 74 6f 72 49 44 2c | 20 63 72 65 61 74 6f 72 |eatorID,| creator|
|00001b90| 4e 61 6d 65 53 74 72 69 | 6e 67 29 3b 0d 09 09 2f |NameStri|ng);.../|
|00001ba0| 2a 0d 09 09 20 2a 20 52 | 65 70 6c 61 63 65 20 74 |*... * R|eplace t|
|00001bb0| 68 65 20 63 75 72 72 65 | 6e 74 20 76 61 6c 75 65 |he curre|nt value|
|00001bc0| 20 6f 66 20 74 68 65 20 | 70 72 6f 70 65 72 74 79 | of the |property|
|00001bd0| 20 77 69 74 68 20 69 74 | 73 20 6e 65 77 20 76 61 | with it|s new va|
|00001be0| 6c 75 65 2e 20 49 6e 20 | 74 68 69 73 0d 09 09 20 |lue. In |this... |
|00001bf0| 2a 20 65 78 61 6d 70 6c | 65 2c 20 77 65 20 61 72 |* exampl|e, we ar|
|00001c00| 65 20 72 65 70 6c 61 63 | 69 6e 67 20 74 68 65 20 |e replac|ing the |
|00001c10| 65 6e 74 69 72 65 20 76 | 61 6c 75 65 20 61 6e 64 |entire v|alue and|
|00001c20| 2c 20 70 6f 74 65 6e 74 | 69 61 6c 6c 79 2c 20 63 |, potent|ially, c|
|00001c30| 68 61 6e 67 69 6e 67 0d | 09 09 20 2a 20 69 74 73 |hanging.|.. * its|
|00001c40| 20 73 69 7a 65 2e 20 49 | 6e 20 70 72 6f 64 75 63 | size. I|n produc|
|00001c50| 74 69 6f 6e 20 73 6f 66 | 74 77 61 72 65 2c 20 79 |tion sof|tware, y|
|00001c60| 6f 75 20 6d 61 79 20 6e | 65 65 64 20 74 6f 20 72 |ou may n|eed to r|
|00001c70| 65 61 64 20 61 6e 20 65 | 78 69 73 74 69 6e 67 0d |ead an e|xisting.|
|00001c80| 09 09 20 2a 20 70 72 6f | 70 65 72 74 79 20 61 6e |.. * pro|perty an|
|00001c90| 64 20 6d 6f 64 69 66 79 | 20 69 74 73 20 63 6f 6e |d modify| its con|
|00001ca0| 74 65 6e 74 73 2e 20 54 | 68 69 73 20 73 68 6f 75 |tents. T|his shou|
|00001cb0| 6c 64 6e 27 74 20 62 65 | 20 74 6f 6f 20 68 61 72 |ldn't be| too har|
|00001cc0| 64 20 74 6f 20 64 6f 2e | 0d 09 09 20 2a 2f 0d 09 |d to do.|... */..|
|00001cd0| 09 73 74 61 74 75 73 20 | 3d 20 52 65 67 69 73 74 |.status |= Regist|
|00001ce0| 72 79 50 72 6f 70 65 72 | 74 79 53 65 74 28 09 09 |ryProper|tySet(..|
|00001cf0| 2f 2a 20 55 70 64 61 74 | 65 20 65 78 69 73 74 69 |/* Updat|e existi|
|00001d00| 6e 67 20 76 61 6c 75 65 | 09 09 09 09 2a 2f 0d 09 |ng value|....*/..|
|00001d10| 09 09 09 09 72 65 67 45 | 6e 74 72 79 49 44 50 74 |....regE|ntryIDPt|
|00001d20| 72 2c 0d 09 09 09 09 09 | 63 72 65 61 74 6f 72 4e |r,......|creatorN|
|00001d30| 61 6d 65 53 74 72 69 6e | 67 2c 0d 09 09 09 09 09 |ameStrin|g,......|
|00001d40| 64 72 69 76 65 72 4e 56 | 52 41 4d 52 65 63 6f 72 |driverNV|RAMRecor|
|00001d50| 64 2c 0d 09 09 09 09 09 | 73 69 7a 65 6f 66 20 64 |d,......|sizeof d|
|00001d60| 72 69 76 65 72 4e 56 52 | 41 4d 52 65 63 6f 72 64 |riverNVR|AMRecord|
|00001d70| 0d 09 09 09 09 29 3b 0d | 09 09 43 68 65 63 6b 53 |.....);.|..CheckS|
|00001d80| 74 61 74 75 73 28 73 74 | 61 74 75 73 2c 20 22 5c |tatus(st|atus, "\|
|00001d90| 70 53 74 6f 72 65 44 72 | 69 76 65 72 4e 56 52 41 |pStoreDr|iverNVRA|
|00001da0| 4d 50 72 6f 70 65 72 74 | 79 22 29 3b 0d 09 09 72 |MPropert|y");...r|
|00001db0| 65 74 75 72 6e 20 28 73 | 74 61 74 75 73 29 3b 0d |eturn (s|tatus);.|
|00001dc0| 7d 0d 0d 2f 2a 20 2a 20 | 2a 20 2a 20 2a 20 2a 20 |}../* * |* * * * |
|00001dd0| 2a 20 2a 20 2a 20 2a 20 | 2a 20 2a 20 2a 20 2a 20 |* * * * |* * * * |
|00001de0| 2a 20 2a 20 2a 20 2a 20 | 2a 20 2a 20 2a 20 2a 20 |* * * * |* * * * |
|00001df0| 2a 20 2a 20 2a 20 2a 20 | 2a 20 2a 20 2a 20 2a 20 |* * * * |* * * * |
|00001e00| 2a 20 2a 20 2a 20 2a 20 | 2a 20 2a 20 2a 20 2a 20 |* * * * |* * * * |
|00001e10| 2a 20 2a 20 2a 20 2a 20 | 2a 20 2a 20 2a 0d 20 2a |* * * * |* * *. *|
|00001e20| 20 43 72 65 61 74 65 20 | 74 68 65 20 4e 56 52 41 | Create |the NVRA|
|00001e30| 4d 20 70 72 6f 70 65 72 | 74 79 2e 20 54 68 69 73 |M proper|ty. This|
|00001e40| 20 6d 75 73 74 20 62 65 | 20 63 61 6c 6c 65 64 20 | must be| called |
|00001e50| 66 72 6f 6d 20 74 68 65 | 20 64 72 69 76 65 72 20 |from the| driver |
|00001e60| 69 6e 69 74 69 61 6c 69 | 7a 61 74 69 6f 6e 20 66 |initiali|zation f|
|00001e70| 75 6e 63 74 69 6f 6e 2e | 0d 20 2a 2f 0d 4f 53 45 |unction.|. */.OSE|
|00001e80| 72 72 0d 43 72 65 61 74 | 65 44 72 69 76 65 72 4e |rr.Creat|eDriverN|
|00001e90| 56 52 41 4d 50 72 6f 70 | 65 72 74 79 28 0d 09 09 |VRAMProp|erty(...|
|00001ea0| 52 65 67 45 6e 74 72 79 | 49 44 50 74 72 09 09 09 |RegEntry|IDPtr...|
|00001eb0| 72 65 67 45 6e 74 72 79 | 49 44 50 74 72 2c 09 09 |regEntry|IDPtr,..|
|00001ec0| 09 2f 2a 20 44 72 69 76 | 65 72 27 73 20 4e 61 6d |./* Driv|er's Nam|
|00001ed0| 65 20 52 65 67 69 73 74 | 65 72 79 20 49 44 09 2a |e Regist|ery ID.*|
|00001ee0| 2f 0d 09 09 4f 53 54 79 | 70 65 09 09 09 09 09 64 |/...OSTy|pe.....d|
|00001ef0| 72 69 76 65 72 43 72 65 | 61 74 6f 72 49 44 2c 09 |riverCre|atorID,.|
|00001f00| 09 2f 2a 20 52 65 67 69 | 73 74 65 72 65 64 20 63 |./* Regi|stered c|
|00001f10| 72 65 61 74 6f 72 20 63 | 6f 64 65 09 09 2a 2f 0d |reator c|ode..*/.|
|00001f20| 09 09 55 49 6e 74 38 09 | 09 09 09 09 64 72 69 76 |..UInt8.|....driv|
|00001f30| 65 72 4e 56 52 41 4d 52 | 65 63 6f 72 64 5b 38 5d |erNVRAMR|ecord[8]|
|00001f40| 09 2f 2a 20 4d 61 6e 64 | 61 74 65 64 20 73 69 7a |./* Mand|ated siz|
|00001f50| 65 09 09 09 09 2a 2f 0d | 09 29 0d 7b 0d 09 09 4f |e....*/.|.).{...O|
|00001f60| 53 45 72 72 09 09 09 09 | 09 73 74 61 74 75 73 3b |SErr....|.status;|
|00001f70| 0d 09 09 63 68 61 72 09 | 09 09 09 09 63 72 65 61 |...char.|....crea|
|00001f80| 74 6f 72 4e 61 6d 65 53 | 74 72 69 6e 67 5b 73 69 |torNameS|tring[si|
|00001f90| 7a 65 6f 66 20 28 4f 53 | 54 79 70 65 29 20 2b 20 |zeof (OS|Type) + |
|00001fa0| 31 5d 3b 0d 09 09 52 65 | 67 50 72 6f 70 65 72 74 |1];...Re|gPropert|
|00001fb0| 79 56 61 6c 75 65 53 69 | 7a 65 09 73 69 7a 65 3b |yValueSi|ze.size;|
|00001fc0| 0d 09 09 52 65 67 50 72 | 6f 70 65 72 74 79 4d 6f |...RegPr|opertyMo|
|00001fd0| 64 69 66 69 65 72 73 09 | 6d 6f 64 69 66 69 65 72 |difiers.|modifier|
|00001fe0| 73 3b 0d 0d 09 09 54 72 | 61 63 65 28 43 72 65 61 |s;....Tr|ace(Crea|
|00001ff0| 74 65 44 72 69 76 65 72 | 4e 56 52 41 4d 50 72 6f |teDriver|NVRAMPro|
|00002000| 70 65 72 74 79 29 3b 0d | 09 09 43 6f 70 79 4f 53 |perty);.|..CopyOS|
|00002010| 54 79 70 65 54 6f 43 53 | 74 72 69 6e 67 28 26 64 |TypeToCS|tring(&d|
|00002020| 72 69 76 65 72 43 72 65 | 61 74 6f 72 49 44 2c 20 |riverCre|atorID, |
|00002030| 63 72 65 61 74 6f 72 4e | 61 6d 65 53 74 72 69 6e |creatorN|ameStrin|
|00002040| 67 29 3b 0d 09 09 2f 2a | 0d 09 09 20 2a 20 44 6f |g);.../*|... * Do|
|00002050| 65 73 20 74 68 65 20 70 | 72 6f 70 65 72 74 79 20 |es the p|roperty |
|00002060| 63 75 72 72 65 6e 74 6c | 79 20 65 78 69 73 74 20 |currentl|y exist |
|00002070| 28 77 69 74 68 20 74 68 | 65 20 63 6f 72 72 65 63 |(with th|e correc|
|00002080| 74 20 73 69 7a 65 29 3f | 0d 09 09 20 2a 2f 0d 09 |t size)?|... */..|
|00002090| 09 73 74 61 74 75 73 20 | 3d 20 52 65 67 69 73 74 |.status |= Regist|
|000020a0| 72 79 50 72 6f 70 65 72 | 74 79 47 65 74 53 69 7a |ryProper|tyGetSiz|
|000020b0| 65 28 09 09 2f 2a 20 72 | 65 74 75 72 6e 73 20 6e |e(../* r|eturns n|
|000020c0| 6f 45 72 72 20 69 66 20 | 74 68 65 20 70 72 6f 70 |oErr if |the prop|
|000020d0| 65 72 74 79 20 65 78 69 | 73 74 73 09 2a 2f 0d 09 |erty exi|sts.*/..|
|000020e0| 09 09 09 09 72 65 67 45 | 6e 74 72 79 49 44 50 74 |....regE|ntryIDPt|
|000020f0| 72 2c 0d 09 09 09 09 09 | 63 72 65 61 74 6f 72 4e |r,......|creatorN|
|00002100| 61 6d 65 53 74 72 69 6e | 67 2c 0d 09 09 09 09 09 |ameStrin|g,......|
|00002110| 26 73 69 7a 65 0d 09 09 | 09 09 29 3b 0d 09 09 69 |&size...|..);...i|
|00002120| 66 20 28 73 74 61 74 75 | 73 20 3d 3d 20 6e 6f 45 |f (statu|s == noE|
|00002130| 72 72 29 20 7b 0d 09 09 | 09 2f 2a 0d 09 09 09 20 |rr) {...|./*.... |
|00002140| 2a 20 52 65 70 6c 61 63 | 65 20 74 68 65 20 63 75 |* Replac|e the cu|
|00002150| 72 72 65 6e 74 20 76 61 | 6c 75 65 20 6f 66 20 74 |rrent va|lue of t|
|00002160| 68 65 20 70 72 6f 70 65 | 72 74 79 20 77 69 74 68 |he prope|rty with|
|00002170| 20 69 74 73 20 6e 65 77 | 20 76 61 6c 75 65 2e 20 | its new| value. |
|00002180| 49 6e 20 74 68 69 73 0d | 09 09 09 20 2a 20 65 78 |In this.|... * ex|
|00002190| 61 6d 70 6c 65 2c 20 77 | 65 20 61 72 65 20 72 65 |ample, w|e are re|
|000021a0| 70 6c 61 63 69 6e 67 20 | 74 68 65 20 65 6e 74 69 |placing |the enti|
|000021b0| 72 65 20 76 61 6c 75 65 | 20 61 6e 64 2c 20 70 6f |re value| and, po|
|000021c0| 74 65 6e 74 69 61 6c 6c | 79 2c 20 63 68 61 6e 67 |tentiall|y, chang|
|000021d0| 69 6e 67 0d 09 09 09 20 | 2a 20 69 74 73 20 73 69 |ing.... |* its si|
|000021e0| 7a 65 2e 20 49 6e 20 70 | 72 6f 64 75 63 74 69 6f |ze. In p|roductio|
|000021f0| 6e 20 73 6f 66 74 77 61 | 72 65 2c 20 79 6f 75 20 |n softwa|re, you |
|00002200| 6d 61 79 20 6e 65 65 64 | 20 74 6f 20 72 65 61 64 |may need| to read|
|00002210| 20 61 6e 20 65 78 69 73 | 74 69 6e 67 0d 09 09 09 | an exis|ting....|
|00002220| 20 2a 20 70 72 6f 70 65 | 72 74 79 20 61 6e 64 20 | * prope|rty and |
|00002230| 6d 6f 64 69 66 79 20 69 | 74 73 20 63 6f 6e 74 65 |modify i|ts conte|
|00002240| 6e 74 73 2e 20 54 68 69 | 73 20 73 68 6f 75 6c 64 |nts. Thi|s should|
|00002250| 6e 27 74 20 62 65 20 74 | 6f 6f 20 68 61 72 64 20 |n't be t|oo hard |
|00002260| 74 6f 20 64 6f 2e 0d 09 | 09 09 20 2a 2f 0d 09 09 |to do...|.. */...|
|00002270| 09 73 74 61 74 75 73 20 | 3d 20 52 65 67 69 73 74 |.status |= Regist|
|00002280| 72 79 50 72 6f 70 65 72 | 74 79 53 65 74 28 09 09 |ryProper|tySet(..|
|00002290| 2f 2a 20 55 70 64 61 74 | 65 20 65 78 69 73 74 69 |/* Updat|e existi|
|000022a0| 6e 67 20 76 61 6c 75 65 | 09 09 09 09 2a 2f 0d 09 |ng value|....*/..|
|000022b0| 09 09 09 09 09 72 65 67 | 45 6e 74 72 79 49 44 50 |.....reg|EntryIDP|
|000022c0| 74 72 2c 0d 09 09 09 09 | 09 09 63 72 65 61 74 6f |tr,.....|..creato|
|000022d0| 72 4e 61 6d 65 53 74 72 | 69 6e 67 2c 0d 09 09 09 |rNameStr|ing,....|
|000022e0| 09 09 09 64 72 69 76 65 | 72 4e 56 52 41 4d 52 65 |...drive|rNVRAMRe|
|000022f0| 63 6f 72 64 2c 0d 09 09 | 09 09 09 09 73 69 7a 65 |cord,...|....size|
|00002300| 6f 66 20 64 72 69 76 65 | 72 4e 56 52 41 4d 52 65 |of drive|rNVRAMRe|
|00002310| 63 6f 72 64 0d 09 09 09 | 09 09 29 3b 0d 09 09 7d |cord....|..);...}|
|00002320| 0d 09 09 65 6c 73 65 20 | 7b 0d 09 09 09 73 74 61 |...else |{....sta|
|00002330| 74 75 73 20 3d 20 52 65 | 67 69 73 74 72 79 50 72 |tus = Re|gistryPr|
|00002340| 6f 70 65 72 74 79 43 72 | 65 61 74 65 28 09 2f 2a |opertyCr|eate(./*|
|00002350| 20 4d 61 6b 65 20 61 20 | 6e 65 77 20 70 72 6f 70 | Make a |new prop|
|00002360| 65 72 74 79 09 09 09 09 | 09 2a 2f 0d 09 09 09 09 |erty....|.*/.....|
|00002370| 09 09 72 65 67 45 6e 74 | 72 79 49 44 50 74 72 2c |..regEnt|ryIDPtr,|
|00002380| 0d 09 09 09 09 09 09 63 | 72 65 61 74 6f 72 4e 61 |.......c|reatorNa|
|00002390| 6d 65 53 74 72 69 6e 67 | 2c 0d 09 09 09 09 09 09 |meString|,.......|
|000023a0| 64 72 69 76 65 72 4e 56 | 52 41 4d 52 65 63 6f 72 |driverNV|RAMRecor|
|000023b0| 64 2c 0d 09 09 09 09 09 | 09 73 69 7a 65 6f 66 20 |d,......|.sizeof |
|000023c0| 64 72 69 76 65 72 4e 56 | 52 41 4d 52 65 63 6f 72 |driverNV|RAMRecor|
|000023d0| 64 0d 09 09 09 09 09 29 | 3b 0d 09 09 7d 0d 09 09 |d......)|;...}...|
|000023e0| 2f 2a 0d 09 09 20 2a 20 | 49 66 20 73 74 61 74 75 |/*... * |If statu|
|000023f0| 73 20 65 71 75 61 6c 73 | 20 6e 6f 45 72 72 2c 20 |s equals| noErr, |
|00002400| 74 68 65 20 70 72 6f 70 | 65 72 74 79 20 68 61 73 |the prop|erty has|
|00002410| 20 62 65 65 6e 20 73 74 | 6f 72 65 64 3b 20 73 65 | been st|ored; se|
|00002420| 74 20 69 74 73 20 22 73 | 61 76 65 20 74 6f 0d 09 |t its "s|ave to..|
|00002430| 09 20 2a 20 6e 6f 6e 2d | 76 6f 6c 61 74 69 6c 65 |. * non-|volatile|
|00002440| 20 72 61 6d 22 20 62 69 | 74 2e 0d 09 09 20 2a 2f | ram" bi|t.... */|
|00002450| 0d 09 09 69 66 20 28 73 | 74 61 74 75 73 20 3d 3d |...if (s|tatus ==|
|00002460| 20 6e 6f 45 72 72 29 20 | 7b 0d 09 09 09 73 74 61 | noErr) |{....sta|
|00002470| 74 75 73 20 3d 20 52 65 | 67 69 73 74 72 79 50 72 |tus = Re|gistryPr|
|00002480| 6f 70 65 72 74 79 47 65 | 74 4d 6f 64 28 0d 09 09 |opertyGe|tMod(...|
|00002490| 09 09 09 09 72 65 67 45 | 6e 74 72 79 49 44 50 74 |....regE|ntryIDPt|
|000024a0| 72 2c 0d 09 09 09 09 09 | 09 63 72 65 61 74 6f 72 |r,......|.creator|
|000024b0| 4e 61 6d 65 53 74 72 69 | 6e 67 2c 0d 09 09 09 09 |NameStri|ng,.....|
|000024c0| 09 09 26 6d 6f 64 69 66 | 69 65 72 73 0d 09 09 09 |..&modif|iers....|
|000024d0| 09 09 29 3b 0d 09 09 7d | 0d 09 09 69 66 20 28 73 |..);...}|...if (s|
|000024e0| 74 61 74 75 73 20 3d 3d | 20 6e 6f 45 72 72 29 20 |tatus ==| noErr) |
|000024f0| 7b 0d 09 09 09 2f 2a 0d | 09 09 09 20 2a 20 53 65 |{..../*.|... * Se|
|00002500| 74 20 74 68 65 20 4e 56 | 52 41 4d 20 62 69 74 20 |t the NV|RAM bit |
|00002510| 61 6e 64 20 75 70 64 61 | 74 65 20 74 68 65 20 6d |and upda|te the m|
|00002520| 6f 64 69 66 69 65 72 73 | 2e 0d 09 09 09 20 2a 2f |odifiers|..... */|
|00002530| 0d 09 09 09 6d 6f 64 69 | 66 69 65 72 73 20 7c 3d |....modi|fiers |=|
|00002540| 20 6b 52 65 67 50 72 6f | 70 65 72 74 79 56 61 6c | kRegPro|pertyVal|
|00002550| 75 65 49 73 53 61 76 65 | 64 54 6f 4e 56 52 41 4d |ueIsSave|dToNVRAM|
|00002560| 3b 0d 09 09 09 73 74 61 | 74 75 73 20 3d 20 52 65 |;....sta|tus = Re|
|00002570| 67 69 73 74 72 79 50 72 | 6f 70 65 72 74 79 53 65 |gistryPr|opertySe|
|00002580| 74 4d 6f 64 28 0d 09 09 | 09 09 09 09 72 65 67 45 |tMod(...|....regE|
|00002590| 6e 74 72 79 49 44 50 74 | 72 2c 0d 09 09 09 09 09 |ntryIDPt|r,......|
|000025a0| 09 63 72 65 61 74 6f 72 | 4e 61 6d 65 53 74 72 69 |.creator|NameStri|
|000025b0| 6e 67 2c 0d 09 09 09 09 | 09 09 6d 6f 64 69 66 69 |ng,.....|..modifi|
|000025c0| 65 72 73 0d 09 09 09 09 | 09 29 3b 0d 09 09 7d 09 |ers.....|.);...}.|
|000025d0| 09 09 0d 09 09 43 68 65 | 63 6b 53 74 61 74 75 73 |.....Che|ckStatus|
|000025e0| 28 73 74 61 74 75 73 2c | 20 22 5c 70 43 72 65 61 |(status,| "\pCrea|
|000025f0| 74 65 44 72 69 76 65 72 | 4e 56 52 41 4d 50 72 6f |teDriver|NVRAMPro|
|00002600| 70 65 72 74 79 22 29 3b | 0d 09 09 72 65 74 75 72 |perty");|...retur|
|00002610| 6e 20 28 73 74 61 74 75 | 73 29 3b 0d 7d 0d 0d 0d |n (statu|s);.}...|
|00002620| 0d 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002630| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002640| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002650| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002670| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002680| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00002690| 00 00 00 03 00 14 04 05 | 0d 00 0e 28 02 89 00 4e |........|...(...N|
|000026a0| 2a 45 78 63 65 70 74 69 | 6f 6e 73 20 49 6e 20 53 |*Excepti|ons In S|
|000026b0| 15 4d 61 6e 61 67 65 4e | 56 52 41 4d 50 72 6f 70 |.ManageN|VRAMProp|
|000026c0| 65 72 74 79 2e 63 02 00 | 00 00 54 45 58 54 4d 50 |erty.c..|..TEXTMP|
|000026d0| 00 00 54 45 58 54 4d 50 | 43 43 01 00 ff ff ff ff |..TEXTMP|CC......|
|000026e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000026f0| 00 00 ab 8f 16 9e 00 00 | 25 a1 00 00 01 9a 73 65 |........|%.....se|
|00002700| 63 6f 6e 64 61 72 79 20 | 69 6e 74 65 72 72 75 70 |condary |interrup|
|00002710| 74 20 68 61 6e 64 6c 65 | 72 2c 20 79 6f 75 20 63 |t handle|r, you c|
|00002720| 61 6e 20 73 70 65 63 69 | 66 79 20 61 6e 20 65 78 |an speci|fy an ex|
|00002730| 63 65 70 74 69 6f 6e a0 | 00 97 a1 00 96 00 06 01 |ception.|........|
|00002740| 00 00 00 00 00 2a 0c 5a | 68 61 6e 64 6c 65 72 2e |.....*.Z|handler.|
|00002750| 20 20 54 68 61 74 20 65 | 78 63 65 70 74 69 6f 6e | That e|xception|
|00002760| 20 68 61 6e 64 6c 65 72 | 20 77 69 6c 6c 20 67 61 | handler| will ga|
|00002770| 69 6e 20 63 6f 6e 74 72 | 6f 6c 20 73 68 6f 75 6c |in contr|ol shoul|
|00002780| 00 00 00 48 00 0a 43 6f | 75 72 69 65 72 00 00 00 |...H..Co|urier...|
|00002790| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027a0| 00 00 00 00 00 00 00 03 | 00 04 00 58 00 04 02 66 |........|...X...f|
|000027b0| 02 4a 00 58 00 04 02 66 | 02 4a ab a0 8f d7 00 00 |.J.X...f|.J......|
|000027c0| 19 a7 00 00 19 b4 00 00 | 11 e0 01 00 00 00 00 04 |........|........|
|000027d0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|000027e0| 00 00 00 46 00 ab fb 54 | 18 fa 00 00 00 1c 00 46 |...F...T|.......F|
|000027f0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00002800| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00002810| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00002820| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002830| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+